• 0

is java programming recommended these days?


Question

I've been reading about the vulnerabilities and security issues associated with java. Is programming in java (and to start learning java development) still hot these days or should I look into other languages?

Link to comment
Share on other sites

Recommended Posts

  • 0
4 minutes ago, sc302 said:

I won't argue here...not my forte. 

Your comment actually helped a lot to bring out information about Java that produced a balanced thread of useful information that would have naturally defaulted on Neowin to suggestions for C#

 

So there's a forte in there somewhere...

Link to comment
Share on other sites

  • 0

here is what I do know, my emc that I manage through the java plugin, the asa that I manage through the java plugin, the barracuda ssl vpn apps that get loaded through the java plugin, will either no longer function due to web browsers disabling it or having to run out dated code that will never get updated to be able to access or manage these devices. 

 

being able to manage these or have access to these things will be difficult at best, and trying to get users to understand this will be even more difficult than having them find the address bar.

Link to comment
Share on other sites

  • 0
12 minutes ago, sc302 said:

here is what I do know, my emc that I manage through the java plugin, the asa that I manage through the java plugin, the barracuda ssl vpn apps that get loaded through the java plugin, will either no longer function due to web browsers disabling it or having to run out dated code that will never get updated to be able to access or manage these devices. 

 

being able to manage these or have access to these things will be difficult at best, and trying to get users to understand this will be even more difficult than having them find the address bar.

Well that's a good discussion.

 

The Anti-Plugin movement is silly at best and a mis-guided conspiracy at worst. It was started by Steve Jobs who had a self-serving purpose to control app development on IOS by literally disallowing any programming languages other than Objective-C. Browser plug-ins would have been one easy way to get around that particular prison cell, so Steve Jobs said NO Plug-ins.

 

At the time, the crazy hysteria in the tech press about the "Post-PC" "revolution" was influencing decisions by major technology players. It was like an economic "Bubble" except the bubble was composed of "Really Stupid Thinking"

 

So the thinking was that if you couldn't use Flash on a mobile device everyone had to get together and come up with HTML5 Video and stuff like that and get it working well because none of the tech leaders were seeing much beyond the problem of a Youtube video player.

 

The fact that plug-ins had become a major app deployment vehicle for enterprise use was overlooked compared to the "coolness" of mobile and nobody would use PC's in a few years anyways because Apple Tablet sales were growing exponentially...

 

All the hysteria led to a secret meeting between Steve Balmer and Adobe in which Steve agreed to kill Silverlight.

 

The reasons are stupid, but the players are huge and we just don't have any say in the matter.

 

At one point you could run a full WPF program inside the browser via XBAP protocol along with the Silverlight Plug-in - there was a lineup of rich application delivery possibilities that have all been killed with the idea they would be replaced with one of the most awkward programming models invented by the mind of man - HTML5

 

So moving forward, any Java Plugin would need to be re-coded into Javascript or converted into some alternative non-browser based delivery vehicle.

 

I think Microsofts "Click-Once" technology was one attempt to solve this issue and it still works to this day but is completely non-promoted by Microsoft and many people are unaware of it. There are also some OSS similar projects on GitHub such as Squirril.

 

Link to comment
Share on other sites

  • 0

^ Umm Microsoft still uses Click-Once, isn't that how Office365 is delivered?

Link to comment
Share on other sites

  • 0
17 hours ago, Matthew S. said:

^ Umm Microsoft still uses Click-Once, isn't that how Office365 is delivered?

There is a case to be made that Microsoft is slowly transitioning their Developer strategy for Windows to copy the "Kitchen Sink" approach of Azure. They have not articulated a coherent developer strategy in decades. Their Patterns & Practices group which used to have a highly featured website back around 2006, now wanders aimlessly around producing random white papers once every 6 months or so. Sometimes I wish I could work at a Fortune 500 corp one day a year just to hear whatever inside information their dedicated Microsoft Rep is giving to Enterprises.

 

So Satya puts the Windows Phone guy in charge of Windows and maybe that eventually changes the arrogant combative WinDiv political culture over time where as a most bizarre thing, the most efficent Windows programming language, C++ is politically married with the least efficient, JavaScript that failed in their attempt to kill .NET. The leftover of that war is the integration of Javascript/HTML5 into Windows as a 1st tier language and a legacy of Microsoft being just about the only developer using Javascript to make WIndows 10 Apps which is probably why the built in apps really suck.

 

So once Satya took over, the WPF team that had been disbanded (and demoralized) has been put together again and is actively supporting WPF on Windows 10 which means Click Once as well.

 

So it seems like Windows Development might be getting the Azure treatment where anything reasonably popular will be supported. Microsoft currentlyhas active teams making Visual Studio suuport for Node.js, Python and R and has an Objective-C compiler producing intermediate code for Visual C++. The only thing missing is more integrated Java support.

 

 

 

Link to comment
Share on other sites

  • 0
On 07/09/2016 at 0:54 AM, DevTech said:

All the hysteria led to a secret meeting between Steve Balmer and Adobe in which Steve agreed to kill Silverlight.

 

The reasons are stupid, but the players are huge and we just don't have any say in the matter.

 

At one point you could run a full WPF program inside the browser via XBAP protocol along with the Silverlight Plug-in - there was a lineup of rich application delivery possibilities that have all been killed with the idea they would be replaced with one of the most awkward programming models invented by the mind of man - HTML5

An interesting point of view, but it ignores the many problems plug-ins had. If you have N plugins to support on M platforms in X browsers, that's a lot of pointless work on a lot of developers. The multiplication of platforms with mobiles and tablets meant that this was getting simply out of hand. Silverlight never really worked outside of Windows, effectively creating an area of the internet that was out of reach for non-Windows users. These plug-ins also created a huge surface area for security vulnerabilities as we can still see to this day; Steve Jobs wanted none of that.

 

HTML5 is far from ideal but at least it's a standard, and it's implemented directly in browsers.

Link to comment
Share on other sites

  • 0
18 hours ago, DevTech said:

So Satya puts the Windows Phone guy in charge of Windows and maybe that eventually changes the arrogant combative WinDiv political culture over time where as a most bizarre thing, the most efficent Windows programming language, C++ is politically married with the least efficient, JavaScript that failed in their attempt to kill .NET. The leftover of that war is the integration of Javascript/HTML5 into Windows as a 1st tier language and a legacy of Microsoft being just about the only developer using Javascript to make WIndows 10 Apps which is probably why the built in apps really suck.

Those were some very dark years indeed. All this talk of a "C++ renaissance" (for ex.: this) and how suddenly managed code wasn't good enough if you wanted battery life... And at the same time promoting f***ing Javascript to write apps...  While they were sitting there with the best dev ecosystem in the industry and letting it die... I just couldn't believe it. Microsoft was being so retarded it killed my soul. I'm glad this is clearly over.

  • Like 2
Link to comment
Share on other sites

  • 0

If you're going to program for Android, I'd recommend Java for obvious reasons. However, with Swift supposedly being considered for Android as well it might not end up being around for the long run.

If you want a cross platform toolset (and I mean really cross platform), C++ is your best bet since it runs on pretty much anything. Other highly portable languages include Javascript and Python.

However, the question isn't "what language should I learn". Every language has its own pros and cons, and ups and downs, etc. For example, Python is fantastic if you enjoy white space but that is also what makes it conceptually different to most other languages where white space is effectively irrelevant. Javascript is an awesome language, too. It's simple to write and easy to hit the ground running. However its ecosystem is extremely volatile (flavor of the week, in a way) and advanced stuff in JS can give your head a real spin (promises, asynchrony, piping, etc). The question I always ask myself when I want to learn a language is what does it offer? What are its strengths and weaknesses, and do those solve a problem I need to solve. If I was writing a worker application with lots of asynchronous processes I might go with Javascript. A web application (depending on its structure) I would probably pick between PHP or Python.

Every software engineer should be using whatever tools best solve a certain problem, so maybe what you want to ask yourself is what kinds of problems do you want to solve, and which languages fit that scenario.

Link to comment
Share on other sites

  • 0
10 hours ago, Andre S. said:

Those were some very dark years indeed. All this talk of a "C++ renaissance" (for ex.: this) and how suddenly managed code wasn't good enough if you wanted battery life... And at the same time promoting f***ing Javascript to write apps...  While they were sitting there with the best dev ecosystem in the industry and letting it die... I just couldn't believe it. Microsoft was being so retarded it killed my soul. I'm glad this is clearly over.

It was dark indeed. Some good things came out of it that might have required the darkness to make it happen such as pulling XAML across the Windows API barrier and into WinDiv where that part of .NET could get the performance boost it always needed. That also permitted the amazing stuff happening in Windows.UI.Composition.

 

Selecting Satya sent a clear message, but like all wars a desolate landscape is left behind to be cleaned up. There was a huge brain drain from .NET as very talented people either left the company or transferred in to Azure where they were safe. I think that left a vacuum of focus with nobody really driving things and even the recent push to .NET Core seems like an Azure connected venture. The recent reorg of various .NET groups into a single team might be good depending on who surfaces on top.

Link to comment
Share on other sites

  • 0
11 hours ago, Andre S. said:

An interesting point of view, but it ignores the many problems plug-ins had. If you have N plugins to support on M platforms in X browsers, that's a lot of pointless work on a lot of developers. The multiplication of platforms with mobiles and tablets meant that this was getting simply out of hand. Silverlight never really worked outside of Windows, effectively creating an area of the internet that was out of reach for non-Windows users. These plug-ins also created a huge surface area for security vulnerabilities as we can still see to this day; Steve Jobs wanted none of that.

 

HTML5 is far from ideal but at least it's a standard, and it's implemented directly in browsers.

The recent delivery of .NET Core and Windows PowerShell onto Linux and MacOS shows that doing  the same for Silverlight was well within Microsoft's capability.  Steve Balmer killed Silverlight because he was not a "techie" and just saw Silverlight as a part of the marketing wars for advertising dollars with Bing vs Google. Someone like Satya would have seen the rising use of Silverlight as an enterprise application delivery vehicle which we can only hypothesize at the moment would have the potential to deliver a much more consistent and richer experience than HTML5 due to a single implementation and also due to Silverlight being SIlverlight.

 

The security issue is vastly overblown since it is the plug-in vendors responsibility to handle the  security oftheir plug-in and if they totally suck at it like Adobe did then don't use it dudes! But Flash was like a drug and nobody would disable it and so "plug-ins" were given a completely undeserved security rap. And disabling a plug-in is a great temporary response to a security alert. When the browser itself has a security problem, what do you disable?

 

Every year there is a hacker contest to bypass the Browser security and it doesn't matter at all which browser wins because they all fall down in minutes. Browsers need to be taken out of the security footprint and run in a sandbox. Oh wait, that's what Silverlight did...

 

HTML5 as a programming model is the product of LCD induced lunacy, which everyone except Hipster Web Jockies figure out soon enough. HTML5 as a standard seems like some horrible failure of human intellect to not fight for something better but instead let the Hipster crowd new JSthing.IO of the week construct an Alice in Wonderland surrounding lip service to a standard that then needs Polyfils, Babel, SASS, Transpilers, Pre-compilers, Post-compilers, Gulp, Grunt, Bower, NPM and many more to equal hitting F5 in Visual Studio.

Link to comment
Share on other sites

  • 0
10 hours ago, DevTech said:

The security issue is vastly overblown since it is the plug-in vendors responsibility to handle the  security oftheir plug-in and if they totally suck at it like Adobe did then don't use it dudes! But Flash was like a drug and nobody would disable it and so "plug-ins" were given a completely undeserved security rap. And disabling a plug-in is a great temporary response to a security alert.

So if have to disable Flash because its security is terrible, how am I supposed to watch my Youtube videos? Shall I wait until Youtube switches to Silverlight, which will wait until Microsoft ports Silverlight to Android and everything else, by which time everyone will start also attacking Silverlight and it will turn out to have just as many if not more vulnerabilities than Flash? 

 

There's a principle I appreciate in engineering called (well, I call it) minimizing the points of failure. If in order to use the web I have to have Java, Flash, Silverlight + the browser's javascript engine, and keep all these up-to-date using their own installers, it's pretty obvious that the surface area for vulnerabilities is a lot larger than if the browser implements everything.

 

I don't see why you would need plug-ins to have sandboxed processes either, Chrome does this for instance. Doesn't mean there are automatically no vulnerabilities, people make mistakes. Lots of them in Silverlight.

 

Quote

When the browser itself has a security problem, what do you disable?

Switch to a different browser? What do you do when the plugin has a security problem? Can't use another browser, it's all the same plugin. Oops, no way to use that web application now. I don't see how that's better.

 

Or how do you implement a Tor browser if the most popular sites use plug-ins? Oh well, all that content is off-limits again because the browser has no control over what plug-ins are doing, so it has no choice but to disable them.

Link to comment
Share on other sites

  • 0
15 hours ago, Andre S. said:

So if have to disable Flash because its security is terrible, how am I supposed to watch my Youtube videos? Shall I wait until Youtube switches to Silverlight, which will wait until Microsoft ports Silverlight to Android and everything else, by which time everyone will start also attacking Silverlight and it will turn out to have just as many if not more vulnerabilities than Flash? 

 

There's a principle I appreciate in engineering called (well, I call it) minimizing the points of failure. If in order to use the web I have to have Java, Flash, Silverlight + the browser's javascript engine, and keep all these up-to-date using their own installers, it's pretty obvious that the surface area for vulnerabilities is a lot larger than if the browser implements everything.

 

I don't see why you would need plug-ins to have sandboxed processes either, Chrome does this for instance. Doesn't mean there are automatically no vulnerabilities, people make mistakes. Lots of them in Silverlight.

 

Switch to a different browser? What do you do when the plugin has a security problem? Can't use another browser, it's all the same plugin. Oops, no way to use that web application now. I don't see how that's better.

 

Or how do you implement a Tor browser if the most popular sites use plug-ins? Oh well, all that content is off-limits again because the browser has no control over what plug-ins are doing, so it has no choice but to disable them.

Yeah, so this discussion is getting too bogged down in "what-might-have-beens" which makes it likely to just devolve into "Straw Man" scenarios and go nowhere. I say plug-ins don't add risk because the maker of the plug-in is presumably motivated to fix his own code but Adobe became a great counter-example to that concept. Adobe just didn't care even a tiny bit. You say a larger body of complex code will be easier for the Browser maker to fix because it is all in one place but in fact Browsers exhibit an endless series of security holes and are often not patched even when security researchers disclose them. There are ZERO bored Maytag Repairmen at the annual security contests - all the Browsers are like Swiss Cheese. We can't know how Silverlight would have played out in the end because it is a "Road Not Taken". https://en.wikipedia.org/wiki/The_Road_Not_Taken

 

The big players choose and we deal with the leftovers. I think on the whole that Silverlight was a net gain for humanity and you think the opposite. I can't see if there is any value to extending this trip down memory lane other than "Those who cannot remember the past are condemned to repeat it" https://en.wikipedia.org/wiki/George_Santayana

 

Link to comment
Share on other sites

  • 0
Quote

You say a larger body of complex code will be easier for the Browser maker to fix because it is all in one place but in fact Browsers exhibit an endless series of security holes and are often not patched even when security researchers disclose them.

But that can be true of any software, including (and as has been the case) browser plug-ins. Except now you multiply the number of attack vectors by the number of plugins that all implement the same-but-not-quite functionality in variously broken ways rather than a single one.

 

15 hours ago, DevTech said:

We can't know how Silverlight would have played out in the end because it is a "Road Not Taken". https://en.wikipedia.org/wiki/The_Road_Not_Taken

No, but assuming its security was any better than Flash because there were less reported vulnerabilities is kinda the same bogus argument people use to say Mac or Linux is "more secure" than Windows. Of course a marginal product gets attacked less than a ubiquitous one; it doesn't say anything about the inherent quality of the code.

 

Quote

I think on the whole that Silverlight was a net gain for humanity and you think the opposite.

I don't really think that... we can hypothetize Microsoft's resources would have been better spent trying to stay relevant in a world of connected portable devices that they never saw coming, rather than try to extend their Windows monopoly to the web through a proprietary browser plugin, but it did enable many companies to do interesting things they couldn't have for the time it was supported. And then, of course, have to re-code everything in Javascript because MS killed Silverlight almost as soon as it saw the light of day and never bothered to tell anyone before companies had made significant investments in the tech. Was that a net gain or loss? Hard to say.

Link to comment
Share on other sites

  • 0
On 07/09/2016 at 3:08 AM, Andre S. said:

It's certainly not "hot" - it's one of the most boring technologies out there. Is it bad? No. Will you find a well-paying job? Yes. But if you're looking for something exciting you might want to look elsewhere. I would also attempt to nudge you towards .NET instead - of course on a Windows-centric forum you shouldn't find this too surprising - , but with .NET going full crossplatform and being basically re-invented before our eyes with .NET Core these are quite interesting times.

 

As for objective evidence I can provide that on stackoverflow's latest developer survey, both C# and F# figure on the top 10 most loved technologies, and Java isn't there. Swift's euphoric rating is interesting; it probably reflects the state of shock in which poor iOS developers must be at using something modern and relatively well-designed.

Yeah C# has a few nice language features over Java but really I find them both pretty boring. C# is mostly a "better Java", it is most of the same limitations (GC, runtime overhead) as Java. I actually prefer JavaFX over WPF. C# naturally plays nicer on Windows than Java but then Java played better on other platforms compared to C# until very recently ;)

 

The language I enjoy working most in is C++11/14. It is feature rich and feels very modern. I work with libcinder, imgui, boost, etc. and they are great fun. This isn't your C++98 garbage. 

 

As to answering OP I like Java, it is a good language for what it was designed to do. Which is make it easy to bolt business logic and data together. Also Android is a lot of fun and Java is the de facto language there. Honestly you can't really go wrong with either C# or Java. 

Link to comment
Share on other sites

  • 0
1 minute ago, satysin said:

Yeah C# has a few nice language features over Java but really I find them both pretty boring. C# is mostly a "better Java", it is most of the same limitations (GC, runtime overhead) as Java. I actually prefer JavaFX over WPF. C# naturally plays nicer on Windows than Java but then Java played better on other platforms compared to C# until very recently ;)

I find the lack of user-defined value types, reified generics and (until recently at least? didn't check much about recent Java versions) poor support for lambdas utterly mortifying in Java. But yeah C# was basically "let's have our own Java since Sun won't let us use it", they're much more similar than dissimilar.

Link to comment
Share on other sites

  • 0
4 minutes ago, Andre S. said:

I find the lack of user-defined value types, reified generics and (until recently at least? didn't check much about recent Java versions) poor support for lambdas utterly mortifying in Java. But yeah C# was basically "let's have our own Java since Sun won't let us use it", they're much more similar than dissimilar.

Yeah Java has evolved at a much slower pace than C#. Some love that and some hate it. Can't please everyone :) 

 

Reading over my post again I think my opinion is clearly biased a bit against C# and Java in general. This is most likely because I only use them for work which tends to be rather boring CRUD projects. For things I personally find interesting I will use C, C++, Rust, Go, etc. Whatever takes my fancy tbh. I think the "fun" with C#/Java is still there I am just blind to it now. 

Link to comment
Share on other sites

  • 0
7 hours ago, satysin said:

As to answering OP I like Java, it is a good language for what it was designed to do. Which is make it easy to bolt business logic and data together.

Just in case it is of interest to anyone, Java was NOT designed to do this.

 

Java was designed to run in embedded devices, specifically "set top boxes" that Cable TV supplies. It ended up being re-purposed for a bit of this and that misc other tasks as time went on. It would be funny of none of these boxes have Java in them anymore...

 

Link to comment
Share on other sites

  • 0
7 hours ago, Andre S. said:

I find the lack of user-defined value types, reified generics and (until recently at least? didn't check much about recent Java versions) poor support for lambdas utterly mortifying in Java. But yeah C# was basically "let's have our own Java since Sun won't let us use it", they're much more similar than dissimilar.

Quote

 

Yeah Java has evolved at a much slower pace than C#. Some love that and some hate it. Can't please everyone :) 

 

Reading over my post again I think my opinion is clearly biased a bit against C# and Java in general. This is most likely because I only use them for work which tends to be rather boring CRUD projects. For things I personally find interesting I will use C, C++, Rust, Go, etc. Whatever takes my fancy tbh. I think the "fun" with C#/Java is still there I am just blind to it now. 

 

https://channel9.msdn.com/Blogs/Seth-Juarez/Looking-Ahead-to-C-7-with-Mads-Torgersen

 

C# is continually evolving (which might  slow uptake of  F# a bit). The pace of C# change has slowed a lot and that is part of Microsoft being a Good Sheppard, and not adding features for no reason. The old Microsoft of the "new feature of the week in Office" would have turned C# into something unrecognizable by now, so slow and careful is good in language design. LINQ was a 3.0 feature that had enormous cumulative effect while adding very few keywords so it is possible for such a ground breaking addition to happen in the future and if so, I suspect it will come from F#

 

https://channel9.msdn.com/Blogs/Seth-Juarez/Making-the-Case-for-using-F-with-Tomas-Petricek

 

The other huge advantage of C# which will also have a cumulative effect over time like a snowball becoming an avalanche is Roslyn. It's an implementation feature that any other language could duplicate but the resources required to match it would be enormous. Although it has already enabled a plethora of intelligent tools, it has the potential to enable a kind of plastic DSL driven language features tailored for just what you are interested in.

 

The creation of the Visual C++ back end to generate machine code also brings the language into the C++ efficiency zone.

 

Link to comment
Share on other sites

  • 0
8 hours ago, DevTech said:

Just in case it is of interest to anyone, Java was NOT designed to do this.

 

Java was designed to run in embedded devices, specifically "set top boxes" that Cable TV supplies. It ended up being re-purposed for a bit of this and that misc other tasks as time went on. It would be funny of none of these boxes have Java in them anymore...

 

Ok yeah when it was being developed (back when it was Oak not Java) it was designed for set-top boxes and internet based applications that could run on many platforms without the need for different binaries. Since then it has evolved and its design has changed but its core strength is business applications especially back-end networked systems. 

Link to comment
Share on other sites

  • 0
50 minutes ago, satysin said:

Ok yeah when it was being developed (back when it was Oak not Java) it was designed for set-top boxes and internet based applications that could run on many platforms without the need for different binaries. Since then it has evolved and its design has changed but its core strength is business applications especially back-end networked systems. 

All of the languages descended from C, such as C++, Java, C# etc have similar language constructs. You are actually referring to "Java the Ecosystem" where a base of Libraries, servers and general social conventions can sway a language choice. It's a criteria that could be important to some and not important to others.

 

Somebody forgot to tell Markus Persson that Java was for Business applications as he went on to make one of the most successful software games of all time, in Java.

 

Again, Java is not my language of choice, but it is also not limited in any way other than some cross platform awkwardness.(and I get the irony of that)

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.