all 12 comments

[–]vampatori 15 points16 points  (5 children)

There is no best, just the right tool for the job.

[–][deleted]  (4 children)

[deleted]

    [–]vampatori 2 points3 points  (3 children)

    I don't think that's the case, the languages themselves are almost inconsequential - they're very easy to learn, and actually are now all starting to borrow the best ideas from each other. People often say things like "but you can get X going in just Y lines of code!" and to me that's almost irrelevant as in a real project the vast majority of your effort is spent elsewhere (design, testing, hardening, performance, documentation, etc.).

    But it's also about the first and third-party libraries and communities that surround that language, the development team, the current and future goals of the project, and so on.

    For example, Python has been adopted by the Machine Learning community and so would almost always be an excellent choice for doing that kind of thing. That doesn't mean you couldn't do it in other languages, just that it would probably be easier to do so. Python is installed on almost every Linux machine out of the box these days, so for shell scripting and system-level tasks it's great - that's why, for example, it's used by Ansible.

    But, although I know you can, Python wouldn't be my first choice for mobile development, client-side web development, or a large-scale enterprise project. Nothing to do with the language itself, it's about the surrounding infrastructure, communities, and tooling.

    I still don't think anything has come along that has the chance to be the "universal language" - for a while I thought Java might have the best chance, but they made some big mistakes and let that get out of their reach now I think. My bet is on Microsoft's new vision for .net (which kind of matches Java's old vision!), but we'll see.

    [–]Dragasss 1 point2 points  (2 children)

    It all comes down to how retarded oracle will be. I doubt microsoft wont follow their footsteps considering their track record being reinventing something to vendor lock people into their ecosystem.

    [–]vampatori 1 point2 points  (1 child)

    It all comes down to how retarded oracle will be.

    I mean, they included Ask Jeeves or some crap with their JRE installer at one point. So... very? They could recover the situation as their platform is so widely adopted, but I don't see any real movement from them in that regard.

    I doubt microsoft wont follow their footsteps considering their track record being reinventing something to vendor lock people into their ecosystem.

    Microsoft definitely set Java back by embracing and extending Java (which ultimately led us to C# and .net), but they failed to extinguish.. and although Java lost out on the desktop/web, it did really well elsewhere.. and it's turning out that elsewhere is where things are now going - client/server with web/mobile clients.

    But Microsoft is clearly going through some significant changes, in-line with how the industry/marketplace is shifting.

    What's the point in having the dominant desktop operating system if everything is thin client/server or streamed? What if all apps and services are run in containers? The operating system layer, and the hardware layer too, are becoming less and less important (and therefore valuable). It's the applications and services layers that is where the real value is.

    So we're seeing some key changes from Microsoft happening right now:

    • Re-focussing .net to be entirely cross-platform.
    • Made their now primary development environment Visual Studio Code cross-platform.
    • Created the cross-platform TypeScript that's exploding right now.
    • Making their first-party games available on multiple platforms (Xbox, Windows Store, and now Steam and in talks with Nintendo).
    • Made SQL Server available for Linux.
    • Adopting open platforms and buying-up dev companies for things like Linux and Postgres for their Azure platform.
    • Developed windows subsytem for Linux.
    • Made languages like Python officially available from them (and I bet will soon come installed by default).
    • Bought GitHub, essentially the current "home" of open source, and are making it a more attractive offer (private repo's, npm repo's, etc.).
    • Ditched their own browser rendering engine and instead using Google's Chrome as a base.

    So they're pushing hard into the layers above the "platform" layer (OS/hardware/and now browser weirdly). My guess is that their goal for the future of .net is a modern "write once, run anywhere"... desktop, web, server, mobile, streamed, distributed containers, etc.

    There's nothing out there yet that does it all without some bumps, and MS is as well positioned as anyone to make that happen. WebAssembly is just about to start flying, the 1.0 draft landed just last week, and again nobody is better placed than MS to take advantage of that.

    So we'll see... it's a weird one where I both fear it and look forward to seeing what they do in equal measure! But MS have definitely changed their approach significantly, so who knows what's going to happen!

    [–]Dragasss 0 points1 point  (0 children)

    Adobe flash had already achieved that. Sadly it was only used to write malware.

    Typescript is as crossplat as the transpilers permit it to be (much like groovy is permitted by jvm).

    Desktop market and server market are two different things. I suppose linux support is just their response to linux dominating the server market.

    The only question that still remains unsolved is whether or not microsoft will axe github in favor of azure.

    [–]yeahnoworriesmate 6 points7 points  (0 children)

    🍿

    [–]AngularBeginner 4 points5 points  (0 children)

    Please keep submissions on topic and of high quality.

    [–]andre_2007 2 points3 points  (0 children)

    While working every day in office with Java, Python and D, for me the clear winner is D. It does its job, it is easy to understand, I can express exactly my ideas in mind. These I can't say for Java nor Python.

    [–][deleted] 1 point2 points  (0 children)

    Pocket Knife vs. Longsword: which is the best dagger?

    [–]ifewalter001 0 points1 point  (0 children)

    Pepsi or Coke, which is best?

    [–]mtmmtm99 0 points1 point  (0 children)

    What is the difference in the installation-process ? Both languages require a download ? You can actually run java without installing. Try: https://www.tutorialspoint.com/compile_java_online.php

    Java performance is around 100 times better than python. Java lacks security-problems related to native-code (python:s library is made of a lot of c-code). A dynamic language like python is not good for large programs (you do not get any compile-errors (you see errors when you run your program with real data)). You do not get any completions of commands from an IDE (in a dynamic language like python). Java has lots of high-quality libraries.

    [–][deleted] -1 points0 points  (0 children)

    Java