Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie
Hi there,
There is an issue with role permissions that is being worked on at the moment.
If you are having trouble with access or permissions on regional forums please post here to get access: https://www.boards.ie/discussion/2058365403/you-do-not-have-permission-for-that#latest

Language of the future.

  • 05-12-2007 4:14pm
    #1
    Registered Users, Registered Users 2 Posts: 3,969 ✭✭✭


    What do you guys think will be the main language going forward into the future? We are being told it will be java. But wouldn't c or c++ be better as it can be more efficient as it does not run in a virtual machine??


«1

Comments

  • Registered Users, Registered Users 2 Posts: 413 ✭✭ianhobo


    I dont think there will be "one" language.
    As long as there are different architectures, different devices, different needs,
    even more than that, cost will always be a crucial deciding factor.
    Cost decides both hardware and development environment and so too a language. Trying to keep it general of course


  • Registered Users, Registered Users 2 Posts: 21,264 ✭✭✭✭Hobbes


    Web Services TBH.
    We are being told it will be java. But wouldn't c or c++ be better as it can be more efficient as it does not run in a virtual machine??

    ahhhh. Will you ever read up on JIT.


  • Registered Users, Registered Users 2 Posts: 995 ✭✭✭cousin_borat


    I think Domain Specific languages are the way forward. Larger programming languages that are easily adopted into DSL's. Groovy is a good example of this type of functionality.

    Obviously Web Services are also very important for interoperability.


  • Closed Accounts Posts: 413 ✭✭sobriquet


    What do you guys think will be the main language going forward into the future? We are being told it will be java. But wouldn't c or c++ be better as it can be more efficient as it does not run in a virtual machine??

    No idea, and to be honest I'm not optimistic that there's one coming or if not that the new one will be coming any time soon. Who's saying it's Java? I remember all the hype in the mid nineties onward, but these days I hear little about it's supposed domination. Short answer to C/C++, no. The benefits to memory managed languages are too great. The large rich client app I work on is in C# and would be vastly more difficult to write in C++. Bad code is a bigger enemy for us than the CLR. I'd prob agree with ianhobo though, the computing world is too fractured into different domains for there to be a single main language as C or C++ were.

    This is an interesting paper by Tim Sweeney of Epic games about the Unreal Engine. Most flaws come from problems in array handling in C++ that are non-issues in higher level languages. He talks about using a functional language as most their code is to do with mapping and folding lists. Another major problem is parallelism, so he talks about possible solutions and states pretty unarguably that new languages must facilitate it. (He even goes so far as to say a 10% performance would be fine if it can majorly reduce flaws - bye bye C++) He's talking about game engines, but the issues are no different for any other substantial app; taking advantage or parallelism is a big deal in any area. Interesting stuff, worth a read.


  • Registered Users, Registered Users 2 Posts: 21,264 ✭✭✭✭Hobbes


    sobriquet wrote: »
    Who's saying it's Java? I remember all the hype in the mid nineties onward, but these days I hear little about it's supposed domination.

    "Java Technology is everywhere - in mobile phones, cars, cameras, printers, games, PDAs, ATMs, smart cards, gas pumps, sports stadiums, medical devices, Web cams, server, you name it .." - Scott McNealy.
    Bad code is a bigger enemy for us than the CLR.

    True.
    I think Domain Specific languages are the way forward.

    I agree with the DSL, however the nice thing about SOA is that you can talk between DS Languages and not have to worry how one vs the other works.


  • Advertisement
  • Closed Accounts Posts: 413 ✭✭sobriquet


    Hobbes wrote: »
    "Java Technology is everywhere - in mobile phones, cars, cameras, printers, games, PDAs, ATMs, smart cards, gas pumps, sports stadiums, medical devices, Web cams, server, you name it .." - Scott McNealy.

    And Scott McNealy isn't biased! Re-reading my comment it does comes off a bit contrary. It wasn't intentional, I don't care how well Java does. Is it so far penetrated to be described as the mainstream language though? It's probably a factor of being outside of its' sphere that it just never seemed that way to me.


  • Registered Users, Registered Users 2 Posts: 21,264 ✭✭✭✭Hobbes


    sobriquet wrote: »
    And Scott McNealy isn't biased!

    True :) But if any person knew, it would be him?
    Is it so far penetrated to be described as the mainstream language though?

    I think it is one of them. It really depends on what you are talking about. Client? Server? Device? Web?

    Certainly applets are more or less dead vs what else is out there.


  • Registered Users, Registered Users 2 Posts: 413 ✭✭ianhobo


    Hobbes wrote: »
    "Java Technology is everywhere - in mobile phones, cars, cameras, printers, games, PDAs, ATMs, smart cards, gas pumps, sports stadiums, medical devices, Web cams, server, you name it .." - Scott McNealy.
    Mobile Phones - Most OS's still in C (becoming even more so!)
    Cars - OS defiantly still in C
    Games - pc/playstation/xbox stuff very c++ orientated
    ATM's - well local ones look ancient!! so C! ha ha
    Medical devices - most definatly C is still heavily used


    C and C++ are in many many many more devices!

    What about non-web orientated services? (As most of the replies seem to be concerned with area, or am I wrong)


  • Registered Users, Registered Users 2 Posts: 15,443 ✭✭✭✭bonkey


    ianhobo wrote: »
    C and C++ are in many many many more devices!

    Yes yes, and there's more lines of VB and COBOL than any other languages. It doesn't make them the language of the future either.


  • Registered Users, Registered Users 2 Posts: 15,443 ✭✭✭✭bonkey


    http://www.joelonsoftware.com/items/2007/09/18.html

    Good article on this very subject. Its only one guy's view, of course. There's no promise he's right, and naturally it agrees as much as possible with the path his company is already following...but its an interesting read, if you don't read joel's stuff already.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 21,264 ✭✭✭✭Hobbes


    ianhobo wrote: »
    C and C++ are in many many many more devices!

    The point isn't that it is the mainstream in all those areas but that Java is in all those areas.

    I certainly don't know of any recent mobile phone that doesn't have a JVM on it. Also the mobile phone games market is predominately Java.

    As for games on PC. Unless its badly coded or has a popup that it is written in Java you wouldn't be able to tell the difference.

    To give an example check out Jake2. It is quake2 written in Java.


  • Registered Users, Registered Users 2 Posts: 413 ✭✭ianhobo


    bonkey wrote: »
    Yes yes, and there's more lines of VB and COBOL than any other languages. It doesn't make them the language of the future either.

    Exactly, and I don't mean that c or c++ are either, my very first reply on this thread stated that, and *my* opinion that there will be no "one" language of the future, in much the same way as there isn't only one language now

    I wasn't trying to demonstrate the dominance of either languages, but rather just as a retort to the initial quote :)
    As for games on PC. Unless its badly coded or has a popup that it is written in Java you wouldn't be able to tell the difference.

    Hmmm I personally doubt that. I can appreciate your jake2 example, as its based on a relatively old core, but i don't think that statement would hold for a comparison of two *modern* graphics heavy, cpu intensive games. But again like so many other comparison threads, its apples and oranges! :)

    Again, difference projects will always require different tools, and there will always be many flavours of languages around for a long time to come


  • Registered Users, Registered Users 2 Posts: 995 ✭✭✭cousin_borat


    Apologies for the sketchiness. There was a great article in the MIT Technology review magazine earlier this year. It was with a guy who was one of the original Microsoft people (wrote the first word processor) (definately not Paul Allen). He's since been working on a Meta languages that he sees as the future of programming. Many of the concepts related to domain specific languages and aspect oriented programming which is definately in at the moment (Spring).

    Crappy internet connection here in Leitrim so can't really go searching. I remember it was the same issue that had an interview with Bjarne Stroustrup (c++).

    Edit: Charles Simonyi. I'd highly recommend reading the article http://www.technologyreview.com/Infotech/18047/?a=f
    Here's the interview with Stroustrup in the same issue; http://www.technologyreview.com/InfoTech/17987/


  • Moderators, Science, Health & Environment Moderators Posts: 10,093 Mod ✭✭✭✭marco_polo


    Looking at the history of IT over the past 30 or 40 years it is had to believe there will be only one dominant anything of the future TBH :).

    I would guess that the likes of C++, Java and C# will remain the defacto languages for at least the decade (with increased emphasis on the likes of AOP etc), beyond that it is very early to say which of the next generation languages may or may not make it.


  • Registered Users, Registered Users 2 Posts: 21,264 ✭✭✭✭Hobbes


    ianhobo wrote: »
    Hmmm I personally doubt that. I can appreciate your jake2 example, as its based on a relatively old core, but i don't think that statement would hold for a comparison of two *modern* graphics heavy, cpu intensive games.

    Depends very much on what your trying to do. If you can offload the work to the GPU then it won't have any serious impact on the JVM at all.

    Not sure what you mean by old core though? You can also see more demo's here.

    https://jogl.dev.java.net/


  • Closed Accounts Posts: 4,943 ✭✭✭Mutant_Fruit


    Personally, i see the future being taken up with managed languages (no matter what managed language it is). The reason being is that they solve some of the problems which plague unmanaged code such as memory management and array out of bounds issues.

    From benchmarks which i read about a year ago, using managed directx through c# was only about 10-12% slower than using C++ and regular directx. A 10% performance hit isn't much considering that the majority of the actual processing is handled on graphics cards, so the more graphics intensive you are, the less important it is how fast the code itself runs.

    Unit3D uses .NET as it's scripting language (and maybe the editor itself runs on .NET, i can't remember) showing that managed languages really are a viable alternative.


  • Registered Users, Registered Users 2 Posts: 5,618 ✭✭✭Civilian_Target


    There's never going to be one language for everything. Horses for courses. But learn one or two and the rest are easy.

    Personally, I think the next major language is Python, as Java has all the ease-of-use of a compiled language, and all the performance of an interpreted one!


  • Registered Users, Registered Users 2 Posts: 21,264 ✭✭✭✭Hobbes


    Personally, I think the next major language is Python, as Java has all the ease-of-use of a compiled language, and all the performance of an interpreted one!

    How long do people have to keep repeating that crap? If you think that your not in a position to comment on what Java is like.

    As for Python. There is Jython (compiles Python into Java Byte code). I'm in two minds tbh with Python. Just because a language is easier to code in doesn't mean that it is a better language. First versions of Visual basic for windows is a good example. While it made it easier to code it created a generation of piss-poor applications poorly coded. Also any examples I've seen trying to prove that Jython requires less coding is normally compared against badly written code.


  • Closed Accounts Posts: 413 ✭✭sobriquet


    Hobbes wrote: »
    As for Python.

    I agree with your first comment re java, but I'd regard Python as a Real Programming Language myself. I've used it in a professional capacity for creating a test suite for a C application, and it was great. To do the same in C would've been an almighty pain in the arse. I use it for day to day scripting too. Anyways, the reason that you cite (easier != better) was one regularly trotted out about Java back in the day. I see no indication that Python has created a legion of bad programs; it's certainly not aimed at the VB market.
    managed languages really are a viable alternative.
    Definitely. My companies rich client app is written in C# running on .Net and it's great. The wins you get from using a VM are too great, most things will go that way. I wonder about the Java games mentioned earlier though; you win from not having to write in C++ and deal with a multitude of resulting problems (see that link I posted) but no-one seems to be moving to the JVM/CLR to run their games on. The Sweeny paper talked about how, trying to update 10,000 objects for collision detection, physics, animations, audio processing, AI etc at 60fps, every performance hit counts. I wonder if a VM for that sort of purpose doesn't introduce too much latency.


  • Closed Accounts Posts: 4,943 ✭✭✭Mutant_Fruit


    IronPython (python running on the .NET CLR) actually runs faster than regular CPython in some circumstances. So, while python might be a good language of the future, it can run better in a VM ;) There is a java implementation, but the only benchmarks i could find were old and put the java implementation about 2.5x slower to nearly on-par with CPython. Maybe someone can find newer ones?

    As for games on the CLR, it's unlikely that any of the big name FPS engines will be written in C# any time soon. There's been too much time and effort placed into the C++ code to just throw it away and rewrite in c#. One 'game' that is going to use C# is Second Life. The reason being is performance, it's much faster than what they currently have. Just google for 'second life mono' and you'll get a bunch of links.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 1,481 ✭✭✭satchmo


    Casual games are definitely able to make use of the advantages that Java affords like garbage collection & easier multithreading etc, but it won't cut it for a high-performance mainstream game. Not having complete control and transparency of things like memory allocation/usage & cache access patterns, or not being able to write platform-specific performance code with SIMD and the like just makes it unfeasible. Offloading work to the GPU isn't really an option either - its nice in theory, but in practice the GPU is too busy pushing pixels and reading textures to worry about doing work for the CPU as well. C++ certainly has its flaws, but its the best option out there at the moment for high-performance code.

    There is no "language of the future", there is only the best language for your requirements. Not that worried about memory allocation & access patterns, but want a robust and well-performing language? Use Java. Every cycle counts, and you need to know where every byte is being allocated? Use C++. Lots of file processing & parsing to do, but you want simple and straightforward syntax? Use python. Or you still want simple and straightforward syntax, but need a small memory footprint and good C++ integration? Use Lua. Like brackets? Use Lisp.

    And so on.


  • Registered Users, Registered Users 2 Posts: 21,264 ✭✭✭✭Hobbes


    sobriquet wrote: »
    but I'd regard Python as a Real Programming Language myself.

    I do as well, but as I said making it easier to code is generally detrimental for beginners.

    qbut no-one seems to be moving to the JVM/CLR to run their games on.

    There is already a large number of games/apps that use GL in Java.
    I wonder if a VM for that sort of purpose doesn't introduce too much latency.

    JIT VM compiles Java byte code into local machine code. So there is no hit from interpretation. You can get some speed hit on start up but that can be configured at the JVM to run in client or server mode (client is faster load time, compiles over time, server compiles all at load time). Also the JIT can rewrite the machine code on the fly to optimize code that is running often to be faster/more memory efficient.


  • Hosted Moderators Posts: 7,486 ✭✭✭Red Alert


    Fortran95 - parallelism for free on the intel compilers! :p


  • Closed Accounts Posts: 1,444 ✭✭✭Cantab.


    Red Alert wrote: »
    Fortran95 - parallelism for free on the intel compilers! :p

    Yep -- there was an aritcle in Physics world this week about Fortran making a big comeback. Seemingly for efficient multi-processor systems, Fortran has some efficient and elegant multidimensional capabilities. There's talk about a new standard for Fortran being released that will be targeted at modern multi-processor systems.


  • Closed Accounts Posts: 413 ✭✭sobriquet


    Hobbes wrote: »
    There is already a large number of games/apps that use GL in Java. [...]
    I don't doubt that, and for anyone doing less than cutting edge a VM based language will be a major win - C#, Java, Python, whatever. But is there anything at the high end - the idTech or UnrealEngine level that are using it? They obviously want the wins - see again that link I posted, but there's no traction there. Games companies seem to cycle their tech pretty frequently, legacy isn't quite such an issue for them, so they'd be in a good place to take advantage of VM based/managed languages. It does appear that satchmo is right; Java et al just don't afford the control required for that sort of domain.
    satchmo wrote:
    Like brackets? Use Lisp.
    Heh.


  • Closed Accounts Posts: 4,943 ✭✭✭Mutant_Fruit


    It depends on how you set up your engine. Second life does all it's heavy lifting in unmanaged code, but will handle all it's scripting (i.e. all user created content and a lot of other ingame stuff) via managed languages (you get to choose which managed language you use - there's quite a selection).

    There's no hard and fast rule saying you either use managed or you use unmanaged. You can use both.


  • Moderators, Science, Health & Environment Moderators Posts: 10,093 Mod ✭✭✭✭marco_polo


    Hobbes wrote: »
    JIT VM compiles Java byte code into local machine code. So there is no hit from interpretation. You can get some speed hit on start up but that can be configured at the JVM to run in client or server mode (client is faster load time, compiles over time, server compiles all at load time). Also the JIT can rewrite the machine code on the fly to optimize code that is running often to be faster/more memory efficient.

    You are mostly spot on there, however if you forgive me for being pedantic :) the server vm doesn't actually compile everything upfront either, but it does perform a much more detailed upfront analysis of the code, allowing it to perform much more thorough optimizations. Typically you it will end up that a small percentage of the program has actually been compiled into native code (as most typically applications tend to spend the majority of their time in a relatively small percentage of their code).

    As you said the main strength of the hotspot VM is that it profiles the executing program to identify these bottlenecks of very frequently used code (hotspots) and performs very agressive optimizing of these bottlenecks, often revisting a previous optimized block more than once. However any code that is does not run at all(or very infrequently) will not be compiled.
    sobriquet wrote: »
    I don't doubt that, and for anyone doing less than cutting edge a VM based language will be a major win - C#, Java, Python, whatever. But is there anything at the high end - the idTech or UnrealEngine level that are using it? They obviously want the wins - see again that link I posted, but there's no traction there. Games companies seem to cycle their tech pretty frequently, legacy isn't quite such an issue for them, so they'd be in a good place to take advantage of VM based/managed languages. It does appear that satchmo is right; Java et al just don't afford the control required for that sort of domain.

    Heh.

    I remember reading an interesting article a few months ago by a developer from one of the large game developers, I will try and dig up the link.

    ** I can't for the life of me find the article, I'm not making it up I swear :p. Thanks for nothing google. **

    He made a point that managed languages per say were not unsuitable for game development from a speed point of view or even because of Garbage collection, for example the Unreal 3 engine uses garbage collected c++.

    It was more to do with some of the specific techniques that the current generation of managed languages use that make them unsuitable for game development (Pretty much the control factor you mentioned).

    Another factor in this is that games companies will have have a very large base of highly experienced C++ developers (the majority of whom I am sure have a healthy distain for the likes C# and java :) ), these are not an asset that games companies will be discarding any time soon.


  • Closed Accounts Posts: 19,777 ✭✭✭✭The Corinthian


    Why are people talking about Web services in a thread about programming languages?

    As for the language of the 'future' it comes down to market forces. Certain languages are popular because they are adopted by the 'cost effective' end of the market (e.g. PHP) and others because they are adopted by the 'enterprise' - read banks - end of the market (e.g. Java). Being a really cool language that's really efficient might help achieve this, but ultimately there's no shortage of really good languages that few actually use out there (e.g. Ruby).

    So when considering the language of the future, I suggest people look at market behavior before having academic discussions on the subject.

    I'm still waiting for Linux to become the OS of the future, btw.


  • Registered Users, Registered Users 2 Posts: 21,264 ✭✭✭✭Hobbes


    Why are people talking about Web services in a thread about programming languages?

    Because in the end it won't matter if you program in .NET, Java, etc. If your API calls are a web service then it doesn't matter to you what the back-end language is. It also means it is easier to change the backend if needs be.

    However you still need to know how Web Services work. I would certainly class it as a language that you would need to understand.


  • Advertisement
  • Closed Accounts Posts: 19,777 ✭✭✭✭The Corinthian


    Hobbes wrote: »
    However you still need to know how Web Services work. I would certainly class it as a language that you would need to understand.
    It's not a language. OT at best TBH.


  • Registered Users, Registered Users 2 Posts: 21,264 ✭✭✭✭Hobbes


    It's not a language. OT at best TBH.

    Two systems talking to each other and understanding what they are saying would be classed as a language.

    The question is the language of the future. One where you don't have to worry about what the other system is built on is the one most likely to win.


  • Closed Accounts Posts: 19,777 ✭✭✭✭The Corinthian


    Hobbes wrote: »
    Two systems talking to each other and understanding what they are saying would be classed as a language.
    Silly me, and there was I thinking that the OP and everyone else were talking about programming languages.

    Is an API now a language btw?


  • Registered Users, Registered Users 2 Posts: 995 ✭✭✭cousin_borat


    There can be any number of languages, once they are based on open standards and interoperable that is fine. Web services are the current de facto way to communicate, as are API's but that is not relevant as such. As to programming languages of the future DSL's/Meta programming are the way forward.


  • Closed Accounts Posts: 19,777 ✭✭✭✭The Corinthian


    There can be any number of languages, once they are based on open standards and interoperable that is fine.
    What do you mean by 'open standards'?
    Web services are the current de facto way to communicate, as are API's but that is not relevant as such.
    Web services are basically API's.


  • Closed Accounts Posts: 4,943 ✭✭✭Mutant_Fruit


    Web services are the current de facto way to communicate, as are API's but that is not relevant as such. As to programming languages of the future DSL's/Meta programming are the way forward.
    You can communicate via webservices, but what that really means is you are both using XML over HTTP on each end. Neither of those are programming languages, therefore 'webservices' cannot be classified as a 'langauage'.

    An 'API' is not a 'de facto way to communicate' either. A programs 'API' is just the name given to all the public methods/functions exposed by a program that other programs can call.

    DSL's are quite unlikely to ever become mainstream simply because of their nature. A DSL is a Domain Specific Language, i.e. a language suitable for a very specific task. Therefore it won't be mainstream as it won't be useful for a wide range of tasks like C, C++, C# and Java are. Neither can 'meta programming' be considered a language either.
    The question is the language of the future. One where you don't have to worry about what the other system is built on is the one most likely to win.
    That's a pretty loaded statement. That would only happen if everything compiled directly to the same native code layout and exposed all methods/functions in the same way (for example c++ can expose stuff in a C- like way by using extern C). Managed languages such as Java or C# simply can't do this because they don't compile to native and they require a VM to run. This hasn't stopped both of those languages from doing extremely well.

    I think you'll always have to worry about what language the other system is built on. That's not going to go away. There will always be a 'next great thing' which people will want to use which won't be 100% compatible with the previous generation of stuff.

    For example, C# can directly invoke methods from C programs, but C can't directly invoke C#.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 995 ✭✭✭cousin_borat


    What do you mean by 'open standards'?

    I use the term open standards from its common use atm in the context of service oriented architecture. Some examples of open standards being TCP, IP, XML OASIS format for B2B document exchange and ODF, Java, the list goes on
    Web services are basically API's.
    Thanks for pointing that out.


  • Registered Users, Registered Users 2 Posts: 995 ✭✭✭cousin_borat


    You can communicate via webservices, but what that really means is you are both using XML over HTTP on each end. Neither of those are programming languages, therefore 'webservices' cannot be classified as a 'langauage'.

    Hi Mutant fruit, I don't believe I said anything different. Also Web Services are not always limited to just SOAP.
    An 'API' is not a 'de facto way to communicate' either. A programs 'API' is just the name given to all the public methods/functions exposed by a program that other programs can call.
    I used the incorrect nomenclature (communicate). An API is the de facto way to expose the functionality by a program..
    DSL's are quite unlikely to ever become mainstream simply because of their nature. A DSL is a Domain Specific Language, i.e. a language suitable for a very specific task. Therefore it won't be mainstream as it won't be useful for a wide range of tasks like C, C++, C# and Java are. Neither can 'meta programming' be considered a language either.
    I guess what I'm trying to say is that very often the problem with software is that programmers think through the prism of the particular language. Be it Java, C#, etc to solve the problem.

    Programming languages of the future such as DSL's are the future. Why? Because Subject matter experts and Domain experts are the people who really understand a particular system. Therefore giving them the ability to program in DSL's makes alot more sense than programmers who at best will have an OK grasp of the domain in question.

    Talking about particular languages misses the point as far as I can tell. There will be any number of DSL's and these will be used by the subject matter experts in those particular verticals.
    For example, C# can directly invoke methods from C programs, but C can't directly invoke C#.
    Well that is the point of creating WSDL's where all the calling program is concerned about is the contract with the other system. It should not care what the implementation is that implements whatever the WSDL says the function/method does.

    Again I'd recommend reading the Simonyi article. Also Martin Fowler is doing some interesting work in the "intentional" programming languages referred to in the article.


  • Registered Users, Registered Users 2 Posts: 21,264 ✭✭✭✭Hobbes


    Silly me, and there was I thinking that the OP and everyone else were talking about programming languages.

    The point is that with Web Services it won't matter what the language of the future will be in as all the systems will be able to talk to each other fine. Someone can write a system in .NET and someone else can use that system in PHP or even intermix between .NET, PHP, Java, C++, Python, LotusScript or any other host of languages.

    I'm surprised you didn't mention seeing as your the one watching the market behavior and it is going in the direction of SOA.
    Web services are basically API's.

    Go look up what WSDL stands for then.


  • Closed Accounts Posts: 19,777 ✭✭✭✭The Corinthian


    Hobbes wrote: »
    The point is that with Web Services it won't matter what the language of the future will be in as all the systems will be able to talk to each other fine. Someone can write a system in .NET and someone else can use that system in PHP or even intermix between .NET, PHP, Java, C++, Python, LotusScript or any other host of languages.

    I'm surprised you didn't mention seeing as your the one watching the market behavior and it is going in the direction of SOA.
    Crap. To begin with you simply proffered Web services without any qualification when you originally brought it up.

    Secondly, simply because Web services may become the overriding architecture in many Web applications, does not mean that the languages that are using it will be equally capable or popular.
    Go look up what WSDL stands for then.
    I bet you think XML is a programming language too.


  • Closed Accounts Posts: 413 ✭✭sobriquet


    Programming languages of the future such as DSL's are the future. Why? Because Subject matter experts and Domain experts are the people who really understand a particular system. Therefore giving them the ability to program in DSL's makes alot more sense than programmers who at best will have an OK grasp of the domain in question.

    I'd have to agree with Mutant_Fruit here, I can't see DSLs taking off to that extent at all. Programmers have had to develop solutions for problems in domains completely outside their area of expertise since year dot. (When was that, back in the 80s'? :P) There's nothing new here, and the idea that you could have a system that allows non-programmer experts to develop fully functional solutions to problems through some domain restricted language is just as old.

    Some languages will be more suited to specific tasks, Fortan for numerical work for example. At the same time, it's an incredibly rare program that gets smaller over time; specs grow and users demand features outside the original boundaries. Having a DSL in that case will likely bite you in the arse then. VMs might solve this problem to a degree, imagine something like a Sudoku solver, with the front end written in C# and the solver itself written in Prolog targetted to the CLR. The VM here would make the interoperability easier.


  • Advertisement
  • Closed Accounts Posts: 4,943 ✭✭✭Mutant_Fruit


    Well that is the point of creating WSDL's where all the calling program is concerned about is the contract with the other system. It should not care what the implementation is that implements whatever the WSDL says the function/method does.
    Amazingly enough, that's what C does. It exposes it's methods based on a particular specification (consider it a WSDL of sorts, using your terminology). No other system cares about the implementation of the actual C library in question. The implementation can change, all other programs interacting with it don't care. They'll all work fine. All that matters is that the 'contract' (the public API which is described by the library) does not change.

    WSDL just takes this idea from C and fits it on top of the web service model. That's all.

    Anyway, i think this has pretty much reached the end of any useful discussion. WSDL is a Web Service Description Language. Not a programming language.


  • Registered Users, Registered Users 2 Posts: 995 ✭✭✭cousin_borat


    Hobbes wrote: »
    The point is that with Web Services it won't matter what the language of the future will be in as all the systems will be able to talk to each other fine.

    Just because it's easier to build composite B2B and A2A applications does not mean the underlying programming languages is less relevant. This does not negate the need for improved and more expressive programming languages.

    The truth plain and simple is that most programs are badly written or at best sub-optimal. This thread is losing sight of the fact that the question posted by the original poster is where are programming languages going. How can they be improved to in turn improve the standard of coding? Should they evolve so that the role of programmer who takes a set of requirements and then implements them is gone?

    Fow the record I think the programming language of the future should be Prolog ;)


  • Closed Accounts Posts: 19,777 ✭✭✭✭The Corinthian


    It’s actually quite interesting to see what happens to programming languages over time. Whether a language is the most beautiful construct in the World or not is irrelevant to whether it will ultimately get used. Really it comes down to the market and even luck.

    Off the top of my head here’s my 2 cent on a few examples I’ve seen evolve over the years:

    ASP. Before anyone points it out, I know it’s not actually a language, but it does make an interesting case study. The original version was a bit of a damp squib due to general flakiness and that MS didn’t put all that many resources into it. By ASP 2.0, it has improved and (importantly) it was one of the first Web development languages to be easy to get into (thanks to MS’s ability to build good IDE’s at the time and that there was already a large pool of VB developers out there). By 1999 it had become so popular that SUN rejigged their offering to bring out JSP’s as an easier development alternative to servlets. Subsequently being phased out by ASP.NET, but (like VB and COBOL) likely to be knocking around for decades to come.

    PHP. As much as I love this language, I do think it’s on the decline as the ease of entry for a developer to pick it up and it’s low cost have also in many respects become its long term downfall. To begin with it has a terrible reputation for bad coding (due to the endless number of cut ‘n paste developers throwing up sites) and due to its low cost it’s considered a SME technology and no number of metrics will convince a big corporation (with some exceptions) to use it. As a result you have a huge number of cheap developers in a limited market – leading them all to skill up on more profitable technologies and so we will likely see a slow decline in its use.

    One thing to add that was key to PHP’s success was MySQL. I doubt it would have been anywhere as popular without it.

    dotNet. Again a framework. Very well marketed by MS and finally (a few service packs later) pretty stable it has managed to put up a fair bit of the enterprise market while Sun wasn’t looking. As with PHP and MySQL, improvements in SQL Server greatly helped its popularity. An interesting thing to note is that C# developers get paid a fair bit more than VB.Net ones – even though it all compiles to the same bytecode.

    Ruby. This was around for years – long before Rails. Of course when Rails appeared everyone ran around spouting hype about it until they realized that no one was actually using it (hosting being a particular issue). You hear a lot less hype about it nowadays. ‘Nuff said.

    J2ME. Java had a major advantage when entering the mobile market in that it ran off a VM while everyone else was very much dependant on the OS. This meant that it was able to get onto a far greater range of devices that Symbian or ME based applications could not touch, making it commercially far more viable.

    In short, when talking about the ‘language of the future’ it’s important to bare in mind that what really makes it a success or failure is the market and all those, often accidental, factors that influence it. The rest is bearded, sandal-wearing wankology.


  • Registered Users, Registered Users 2 Posts: 21,264 ✭✭✭✭Hobbes


    Crap. To begin with you simply proffered Web services without any qualification when you originally brought it up.

    Actually you were asking if an API was a language. I pointed out WSDL is a language. I never said it was a programming language. You made that claim I did.

    However its system is what will basically denote the pointlessness of the language of the future. When all languages can talk to each other easily, then there is no dominant language.

    The examples you showed above is a clear case that it wouldn't matter which was written. As they could all talk to each other easily via Web Services. So it won't matter if the shop is in .NET, I can just as easily create an application to slot in and work.

    Also your comment on "Market" was a bit of a cop-out earlier. You give out about people having to watch the market and then don't even mention where the market was going.
    Ruby. This was around for years – long before Rails. Of course when Rails appeared everyone ran around spouting hype about it until they realized that no one was actually using it (hosting being a particular issue). You hear a lot less hype about it nowadays. ‘Nuff said.

    Just because you don't hear the hype doesn't mean it is not being used. It is one of the reasons even though I don't use .NET at all I refuse to slate it. Until I have professional experience in the language, I don't see how my opinion would be viable. I do know that there is work out there for it.

    As for RoR, it is still used quite a lot. I know of three large scale applications in work that use it. But because it is a Web UI, no one would notice it. Is it a good language or not? I don't know. I do know commercially RoR has only existed for 2 years. I also know that there is work out there for RoR developers.
    The rest is bearded, sandal-wearing wankology.

    Right, because people who work in the industry can't form a professional opinion. :rolleyes:


  • Registered Users, Registered Users 2 Posts: 21,264 ✭✭✭✭Hobbes


    Just because it's easier to build composite B2B and A2A applications does not mean the underlying programming languages is less relevant. This does not negate the need for improved and more expressive programming languages.

    Your correct. However having a holy grail of a language is unlikely to happen. Most of the "market" is on maintaining legacy systems. So if one did appear it is unlikely the "market" would move to it. A language that allows you to easily move a legacy system to new hardware/OS/Programming language will be the underlying feature of a programming language of the future.
    WSDL just takes this idea from C and fits it on top of the web service model. That's all.

    It's a wee bit more complicated then that but that would be an accurate description in its most simple form.


  • Closed Accounts Posts: 19,777 ✭✭✭✭The Corinthian


    Hobbes wrote: »
    Actually you were asking if an API was a language. I pointed out WSDL is a language. I never said it was a programming language. You made that claim I did.
    Then you should know that an API is not a language, programming or otherwise. WSDL is a language for defining an API.
    However its system is what will basically denote the pointlessness of the language of the future. When all languages can talk to each other easily, then there is no dominant language.
    Rubbish. We've had a system for allowing all languages to talk to each other for years. It's called TCP/IP.

    The Internet has encouraged different platforms to communicate for a long time, yet this has not stopped some languages (and frameworks) becoming more popular than others. Web services won't stop this either.
    Also your comment on "Market" was a bit of a cop-out earlier. You give out about people having to watch the market and then don't even mention where the market was going.
    In my previous post I suggested a number of things I would predict with regard to a number of the languages/frameworks I cited. As for where the "Market" is going as a whole, I'll leave that to gubu's such as yourself.
    Just because you don't hear the hype doesn't mean it is not being used.
    Of course it's being used, however the drop in hype is indicative of a loss of interest in the technology in general. After all VB and COBOL are still used (a lot more than Ruby), but that hardly makes them a language of the future.
    Right, because people who work in the industry can't form a professional opinion. :rolleyes:
    If there is something that the IT industry is not short of is opinions. Now whether these are grounded in reality is another matter. After all, I'm still waiting for Linux to replace Windows as the most popular desktop OS.


  • Closed Accounts Posts: 4,943 ✭✭✭Mutant_Fruit


    Either way, you have to realise that your webservices are not talking to each other via WSDL.

    They're talking to each other over:
    A) TCP/IP
    B) HTTP
    C) Soap/XML
    [ D) WSDL ]
    In that order.

    WSDL doesn't really feature in that list. I just added it at the end because it's WSDL that specifies the XML/Soap content/format.


  • Hosted Moderators Posts: 7,486 ✭✭✭Red Alert


    My general language lineup:

    MATLAB - I don't know if we're technically going to call it a language but it's a very powerful language, but with a few quirks. Pretty much 90% of my work would be done using it. It can lead to bad habits, and often I think encourages a copy and paste attitude rather than forcing you to encapsulate functional blocks. Inbuilt extras like plotting seal the deal.

    Python - for some reason I avoided it until very recently. At the moment I'm using it for some 'glue' stuff but I'm really impressed with it. Pretty much replacing perl for scripting I used to use perl for. If used as a 'technical computing' environment like MATLAB can encourage poor practice. First stop now for any self-contained programs I write.

    C - Best language for teaching programming I think. It's very easy to move off it onto something like C++ (OOO), Java (OOO and more) whilst still putting in the learning necessary to play with hardware and try out things like assembly. Also you can play with things like threads, and you've to think about your memory usage.

    Fortran - Beautiful language for maths, I thought it was dead and got a bundle of code from a guy all in Fortran. I find the auto vectorize and auto parallelize great, and best of all they're expressed simply.

    On top of that I've written some database heavy stuff in PHP, and have a good few 'glue' scripts in Perl. From the above I'd definitely say that it all depends on what you're using them for - there's no one language that applies especially when you move outside software as a product e.g. into numerical computing etc.


  • Closed Accounts Posts: 1,444 ✭✭✭Cantab.


    Red Alert wrote: »
    Fortran - Beautiful language for maths, I thought it was dead and got a bundle of code from a guy all in Fortran. I find the auto vectorize and auto parallelize great, and best of all they're expressed simply.

    Fortran is great -- still lots of research to be done in auto-parallelization. It's all very fine for dual-cores and quad-cores, but getting compilers to get programs running on 16-, 256-, 1000-core chips is an area of huge research.

    Fortran is a very clean language and a great basis for multi-processor development. The popularity of Intel's Fortran compiler is growing steadily and there are some really cool visual multi-core tools coming out too.

    Agree about MATLAB -- excellent tool for rapidly simulating ideas. But when it comes to hard-core number-crunching and representing complex phenomenon, it breaks down terribly and a more "first-principles" language (often C++) needs to be used.

    Of course the market will be the primary driver of the "language of the future". My money's on Intel multi-core processors and Fortran.


  • Registered Users, Registered Users 2 Posts: 21,264 ✭✭✭✭Hobbes


    Then you should know that an API is not a language, programming or otherwise. WSDL is a language for defining an API.

    Like I said WSDL is a language, but not a programming language. Thanks for pointing out exactly what I said.
    Rubbish. We've had a system for allowing all languages to talk to each other for years. It's called TCP/IP.

    TCPIP is a transport protocol. It tells you nothing about how you should talk to the other systems applications or even how to find the related API you want to access.

    Mutant Fruit explains it a lot better. Although (b) can also be SMTP and (c) can be CORBA, RMI, etc.
    Web services won't stop this either.

    I don't think you fully understand what SOA is.


  • Advertisement
Advertisement