basic poll questions about java
-
raddevus wrote:
I'm thinking about Java and how much I like the idea of Java but I'm also wondering if it really is a dead thing -- except legacy work.
Versus what exactly? TIOBE Index | TIOBE - The Software Quality Company[^] Notice where C is in that list? (To answer question about something being too old.)
raddevus wrote:
Is Java a valid choice for cross-platform development (windows to linux to macOS)?
I have been developing for six years in windows, only windows, and delivering solutions that run in linux, only linux. So certainly seems to work for me.
raddevus wrote:
I used Eclipse in the earlier days of Android Development and thought
I didn't care for eclipse when I used it long ago. I liked the VS IDE when I was doing C#, but even with that I still used my own editor and only used the IDE for building and running. I have heard good things about Intellij. And for 4 years I didn't use an IDE at all.
raddevus wrote:
I examined a JavaFX sample project and noticed the entire UI was built in code
Not sure what any of that means. But not really a UI person. However at least recently those that I know that do UIs use javascript and html. Those however would both still be 'code'.
jschell wrote:
Notice where C is in that list?
Yes, but C specifically solves a problem that other languages really do not, or do not do well: embedded programming. And for embedded programming, C is as good as ever. It makes sense to use C in embedded programming since Object Oriented languages are overkill for the most part. I guess anything can be compiled down but good old C just works.
jschell wrote:
I know that do UIs use javascript and html
That's my point also. If a person is working on a desktop or app type of thing then Java hasn't provided a great way to build UIs. And since HTML / CSS is there, why not just use that since you app will "deploy" in multiple worlds. Also, now with dotnet core you can run your ASP.NET MVC web site on Linux* so easily so why would anyone even choose Java EE / JSP etc? I just worked through getting an ASP.NET MVC web site running on a DigitalOcean droplet (Debian) and it worked so well it was amazing. .NET dev on Linux is very easy now so Java will probably lose more ground.
-
I had a customer for a while (a very large company known by a TLA) who used Java widely for their in-house manufacturing control systems. Their primary motivation was because it worked on all of the OSs they needed to support which included AIX, Linux, OS/2, WinNT, 2000, XP, and who knows what else. They were able to have a very, very high degree of reusability between all of those platforms also. If I recall correctly, that factor was 100% once the figured out the various issues they had. These were systems that communicated with PLCs, other control systems, and their manufacturing database. The primary function of their systems was to interface between the manufacturing database and the various manufacturing systems. I was involved in the development of several of those manufacturing systems. AFAIK, they are still in production too. That was a long time ago, in a galaxy far, far away.
Some of our projects are very similar: interconnecting PLC's, manufacture DB's, process control systems and getting the result to layer 4 or 5. The choice of technology you have in such an environment is really limited, because you often need to support various OS technologies and each version is fairly old. For Windows systems in particular, we have to support Vista with no updates, except for security patches. Instead of using Java, which would be the obvious choice, we package everything into .NET Standard 2.0 libraries. For modern systems we run those with .NET Core, for legacy systems (both Unix and Windows) we use a custom Mono branch. It's always weird and nice to see brand new nugget packages actually working on Vista.
-
jschell wrote:
Notice where C is in that list?
Yes, but C specifically solves a problem that other languages really do not, or do not do well: embedded programming. And for embedded programming, C is as good as ever. It makes sense to use C in embedded programming since Object Oriented languages are overkill for the most part. I guess anything can be compiled down but good old C just works.
jschell wrote:
I know that do UIs use javascript and html
That's my point also. If a person is working on a desktop or app type of thing then Java hasn't provided a great way to build UIs. And since HTML / CSS is there, why not just use that since you app will "deploy" in multiple worlds. Also, now with dotnet core you can run your ASP.NET MVC web site on Linux* so easily so why would anyone even choose Java EE / JSP etc? I just worked through getting an ASP.NET MVC web site running on a DigitalOcean droplet (Debian) and it worked so well it was amazing. .NET dev on Linux is very easy now so Java will probably lose more ground.
Even C is kinda being left out only for high-compatibility, in the microcontroller world. Modern C++ compilers practically eliminate any run-time overhead (when compared do C) for most stuff, so there's no reason not to take advantage of C++'s features, like pointers and polymorphism. As a personal note, it's so much fucking nicer developing code for micros with proper classes and following SOLID principals. Sure, you have to make some concessions, some time, for the sake of performance (indirections have a small but measureable cost), but overall it sure beats all global, all static functions like the old Arduino projects.
-
Even C is kinda being left out only for high-compatibility, in the microcontroller world. Modern C++ compilers practically eliminate any run-time overhead (when compared do C) for most stuff, so there's no reason not to take advantage of C++'s features, like pointers and polymorphism. As a personal note, it's so much fucking nicer developing code for micros with proper classes and following SOLID principals. Sure, you have to make some concessions, some time, for the sake of performance (indirections have a small but measureable cost), but overall it sure beats all global, all static functions like the old Arduino projects.
Hear, hear. I got back into programming microcontrollers after a 15 year break and was shocked to see that frameworks and libraries had not really evolved in all that time one jot. Using a bit of C++ template programming to create drivers for on-board hardware modules made everything really sweet - and fast too. Sorry, total departure from the original topic. I'll crawl back into my hole...
-
Hear, hear. I got back into programming microcontrollers after a 15 year break and was shocked to see that frameworks and libraries had not really evolved in all that time one jot. Using a bit of C++ template programming to create drivers for on-board hardware modules made everything really sweet - and fast too. Sorry, total departure from the original topic. I'll crawl back into my hole...
Please, do go on. My experience has been different but this modern resurgence is the same! Got anything public to show for? My examples: Templating (GitHub - GitMoDu/Fast: Fast IO compatible with library making.[^]) and Polimorphism (GitHub - GitMoDu/ArduinoI2CSlaveDevice: Arduino-Compatible I2C slave library[^])
-
Please, do go on. My experience has been different but this modern resurgence is the same! Got anything public to show for? My examples: Templating (GitHub - GitMoDu/Fast: Fast IO compatible with library making.[^]) and Polimorphism (GitHub - GitMoDu/ArduinoI2CSlaveDevice: Arduino-Compatible I2C slave library[^])
No, I've got no public code - it's all proprietary (but more out of laziness than anything). Though I really aught to publish my general-purpose template driver library for the ARM-based Atmel SAM series of microcontrollers. One might argue that template programming is sometimes inefficient code size-wise, but microcontrollers often have a generous amount of on-board flash (and really very little in the way of RAM) so it doesn't matter. Also, as we can make the compiler produce code for each individual module, say a timer, we don't need to maintain differences between one timer and another e.g. register addresses, I/O pin assignments, differences in functional ability etc in precious RAM - it can all get hard coded with added performance benefits. If you're interested, I recommend "Real-Time C++ - Efficient Object-Orientated and Template Microcontroller Programming" by Chris Kormanyos.
-
Even C is kinda being left out only for high-compatibility, in the microcontroller world. Modern C++ compilers practically eliminate any run-time overhead (when compared do C) for most stuff, so there's no reason not to take advantage of C++'s features, like pointers and polymorphism. As a personal note, it's so much fucking nicer developing code for micros with proper classes and following SOLID principals. Sure, you have to make some concessions, some time, for the sake of performance (indirections have a small but measureable cost), but overall it sure beats all global, all static functions like the old Arduino projects.
-
I'm thinking about Java and how much I like the idea of Java but I'm also wondering if it really is a dead thing -- except legacy work. In other words: Why would anyone choose to start a new/modern project using Java? Why does it seem that few people do Java dev here (CP) but there seem to always be jobs posted around that want Java dev experience? For Java devs: Which IDE do you use, do you like? Why would I choose JDeveloper (larger) over netbeans? Is JDeveloper any good? It's a huge 2GB download so I'm curious before downloading/installing. Is JDeveloper based upon Eclipse? Is netbeans based upon Eclipse? Note: I used Eclipse in the earlier days of Android Development and thought it was terrible because its concept of a project was not great and it was difficult to take your "project" to another machine and work on it there. Is Java a valid choice for cross-platform development (windows to linux to macOS)? Or is that a dream also? Just curious. Not trying to start a huge war about Java technology and why it's obviously the best/worst etc. I'm thinking about doing some Java work so I'm interested. EDIT Downloaded NetBeans and so far it seems fairly nice and somewhat similar to Android Studio. Maybe NetBeans is all you need. Plus, I believe it runs on Linux too. EDIT 2 I examined a JavaFX sample project and noticed the entire UI was built in code. X| Not even XML files like Android Studio. Then I went out and searched netbeans to see if there was a UI Designer in NetBeans. Well, it says yes for JavaFX 1.0 but no for 2.0. :confused: So then the NetBeans site gives you a trail for learning JavaFX or Swing! yes, they direct you toward Swing. Here's the document they direct you toward. Embedding Swing Content in JavaFX Applications | JavaFX 8 Tutorials and Documentation[^] It is date stamped : Beta Draft: 2013-09-15!!! :wtf: I'm literally cracking up. :laugh: :laugh: Okay, I'm done. Java isn't a thing. Bye, Java. So long and thanks for all the stank. :laugh: FYI - I know I'm being an ignorant dev here and some long-time Java dev is going to come along and tell me that I'm just so wrong. I understand. I was just examining this on a very quick basis to get an idea of how quickly you could jump in to java dev. IntelliJ
Java once served a good purpose - one language that with minor variations, could enable source code to run on different OSs. One of the things that hurt Java was Sun's religious war with Microsoft. The end result was that Microsoft could not adapt and extend Java without violating licensing agreements, and Sun ensured that Java runtimes for Windows were dog-slow compared to other OSs. Sun eventually went out of business from focusing on the religious wars and not on business success. Microsoft created C# when they could not legally use Java, and with the Mono and Xamarin advances in portability, now C# with .NET Standard can run on multiple OSs faster and with a better language than Java. Today, your best bet for portability is C# and .NET Standard. With Xamarin, now a part of Visual Studio (including the free Community Edition), you can write C# code and with little variation, run native code on Windows, iOS, and Android. And with C# and Visual studio, you also can write code that runs on Windows, Linux, and MacOS. Java is fading, and Oracle is not trying to keep up. You want a free UI and development environment? Get Visual Studio 2017 Community Edition and have at it.
-
Munchies_Matt wrote:
So far it seems to be usable on Androids and that's it. My own, outsiders opinion, it that it is dead.
I think I have to agree. It just seems as if it is irrelevant now as there are other newer better ways that are better supported to get what you want. I only really got involved with Java because of Android and now Android may very well shift to Kotlin. And these reasons we are mentioning are probably why Google is moving toward Kotlin for Android.
-
I'm thinking about Java and how much I like the idea of Java but I'm also wondering if it really is a dead thing -- except legacy work. In other words: Why would anyone choose to start a new/modern project using Java? Why does it seem that few people do Java dev here (CP) but there seem to always be jobs posted around that want Java dev experience? For Java devs: Which IDE do you use, do you like? Why would I choose JDeveloper (larger) over netbeans? Is JDeveloper any good? It's a huge 2GB download so I'm curious before downloading/installing. Is JDeveloper based upon Eclipse? Is netbeans based upon Eclipse? Note: I used Eclipse in the earlier days of Android Development and thought it was terrible because its concept of a project was not great and it was difficult to take your "project" to another machine and work on it there. Is Java a valid choice for cross-platform development (windows to linux to macOS)? Or is that a dream also? Just curious. Not trying to start a huge war about Java technology and why it's obviously the best/worst etc. I'm thinking about doing some Java work so I'm interested. EDIT Downloaded NetBeans and so far it seems fairly nice and somewhat similar to Android Studio. Maybe NetBeans is all you need. Plus, I believe it runs on Linux too. EDIT 2 I examined a JavaFX sample project and noticed the entire UI was built in code. X| Not even XML files like Android Studio. Then I went out and searched netbeans to see if there was a UI Designer in NetBeans. Well, it says yes for JavaFX 1.0 but no for 2.0. :confused: So then the NetBeans site gives you a trail for learning JavaFX or Swing! yes, they direct you toward Swing. Here's the document they direct you toward. Embedding Swing Content in JavaFX Applications | JavaFX 8 Tutorials and Documentation[^] It is date stamped : Beta Draft: 2013-09-15!!! :wtf: I'm literally cracking up. :laugh: :laugh: Okay, I'm done. Java isn't a thing. Bye, Java. So long and thanks for all the stank. :laugh: FYI - I know I'm being an ignorant dev here and some long-time Java dev is going to come along and tell me that I'm just so wrong. I understand. I was just examining this on a very quick basis to get an idea of how quickly you could jump in to java dev. IntelliJ
-
Java once served a good purpose - one language that with minor variations, could enable source code to run on different OSs. One of the things that hurt Java was Sun's religious war with Microsoft. The end result was that Microsoft could not adapt and extend Java without violating licensing agreements, and Sun ensured that Java runtimes for Windows were dog-slow compared to other OSs. Sun eventually went out of business from focusing on the religious wars and not on business success. Microsoft created C# when they could not legally use Java, and with the Mono and Xamarin advances in portability, now C# with .NET Standard can run on multiple OSs faster and with a better language than Java. Today, your best bet for portability is C# and .NET Standard. With Xamarin, now a part of Visual Studio (including the free Community Edition), you can write C# code and with little variation, run native code on Windows, iOS, and Android. And with C# and Visual studio, you also can write code that runs on Windows, Linux, and MacOS. Java is fading, and Oracle is not trying to keep up. You want a free UI and development environment? Get Visual Studio 2017 Community Edition and have at it.
That's actually a very astute, well-informed summary of the situation, I think.
MSBassSinger wrote:
Java is fading, and Oracle is not trying to keep up
That was my exact feeling as I attempted to try some simple things with Java.
MSBassSinger wrote:
Today, your best bet for portability is C# and .NET Standard. With Xamarin, now a part of Visual Studio (including the free Community Edition)
I agree again. I also just deployed an ASP.NET MVC app to my DigitalOcean droplet (Debian) as a dotnet core app and was amazed at how well it works on the little Linux container with limited resources, etc.
-
No, I've got no public code - it's all proprietary (but more out of laziness than anything). Though I really aught to publish my general-purpose template driver library for the ARM-based Atmel SAM series of microcontrollers. One might argue that template programming is sometimes inefficient code size-wise, but microcontrollers often have a generous amount of on-board flash (and really very little in the way of RAM) so it doesn't matter. Also, as we can make the compiler produce code for each individual module, say a timer, we don't need to maintain differences between one timer and another e.g. register addresses, I/O pin assignments, differences in functional ability etc in precious RAM - it can all get hard coded with added performance benefits. If you're interested, I recommend "Real-Time C++ - Efficient Object-Orientated and Template Microcontroller Programming" by Chris Kormanyos.
Exactly, ROM is usually not an issue, RAM is. So the extra cost doesn't really affect. I've yet to master a simple and effective way of doing some sort of HAL, and will need it soon (migrating some projects from AtTiny85 and AtMega328P to STM32), without resorting to high-level overloading. Any tips on that? I'll take a peek at the book, thanks for the reference.
-
Yeah, I've done both (C on Arudino and the newer Arduino) and I definitely agree with you. Plus, C++ is the language I learned to program in the beginning so I will always have a fondness for it. :)
If you use pointers and a #define null nullptr, you can almost pretend you're using a high level language :p
-
Google is not helping as well. They are pushing their "Kotlin" language pretty hard. I just unsubscribed from Android Weekly today, because I realised that they stopped listing articles about Android and now every article is about getting old and common stuff to work on Kotlin. I'll refrain from learning a proprietary language, thank you.
-
obermd wrote:
but Oracle is working hard to kill it.
It really does feel that way. When they took ownership then sued Google for infringement on their use in Android I thought maybe that was Oracle's only point of buying up Java. Then, after the failed litigation Oracle backed away from Java almost instantly and it convinced me even more that the only reason they wanted it was because they saw litigation dollars laying on the table. :|
-
Java continues to be very popular and in demand. Server devs tend to use IntelliJ and Android devs tend to use Android Studio. Eclipse is old hat - I don't know any devs who still use it. /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
Ravi Bhavnani:
Eclipse is old hat - I don't know any devs who still use it.
Yeah well I guess we don't know each other! ;P We still use Eclipse for our older projects where I work. But just to make everything perfectly clear I'd never use Eclipse it's terrible.
-
jschell wrote:
Notice where C is in that list?
Yes, but C specifically solves a problem that other languages really do not, or do not do well: embedded programming. And for embedded programming, C is as good as ever. It makes sense to use C in embedded programming since Object Oriented languages are overkill for the most part. I guess anything can be compiled down but good old C just works.
jschell wrote:
I know that do UIs use javascript and html
That's my point also. If a person is working on a desktop or app type of thing then Java hasn't provided a great way to build UIs. And since HTML / CSS is there, why not just use that since you app will "deploy" in multiple worlds. Also, now with dotnet core you can run your ASP.NET MVC web site on Linux* so easily so why would anyone even choose Java EE / JSP etc? I just worked through getting an ASP.NET MVC web site running on a DigitalOcean droplet (Debian) and it worked so well it was amazing. .NET dev on Linux is very easy now so Java will probably lose more ground.
raddevus wrote:
Yes, but C specifically solves a problem that other languages really do not, or do not do well: embedded programming. And for embedded programming, C is as good as ever. It makes sense to use C in embedded programming since Object Oriented languages are overkill for the most part. I guess anything can be compiled down but good old C just works.
That is a rationalization. I know a company that only works in C++ and they are not doing embedded programming. All server side. And my response was to your suggestion that Java was dying and that C# would specifically replace it. There is no evidence of that and Java being an "old" language has nothing to do with that.
raddevus wrote:
And since HTML / CSS is there, why not just use that since you app will "deploy" in multiple worlds.
Not sure what that means. On the client side, in my experience, complex projects use html and javascript. CSS is part of that mix but helps the other two - it is not a solution by itself. But regardless none of that has anything to do with Java nor C#.
raddevus wrote:
Also, now with dotnet core you can run your ASP.NET MVC web site on Linux* so easily so why would anyone even choose Java EE / JSP etc?
I can run Apache (http server) and perl CGI on probably every system that exists in the world going back to the 70s. That includes all current flavors of linux, Mac OSX (and prior ones) and windows going back to about Windows 95. Doesn't mean I want to however.
raddevus wrote:
and it worked so well it was amazing.
And I like oatmeal raisin cookies but that doesn't mean that I am going to claim that chocolate chip cookies are doomed.
-
jschell wrote:
Notice where C is in that list?
Yes, but C specifically solves a problem that other languages really do not, or do not do well: embedded programming. And for embedded programming, C is as good as ever. It makes sense to use C in embedded programming since Object Oriented languages are overkill for the most part. I guess anything can be compiled down but good old C just works.
jschell wrote:
I know that do UIs use javascript and html
That's my point also. If a person is working on a desktop or app type of thing then Java hasn't provided a great way to build UIs. And since HTML / CSS is there, why not just use that since you app will "deploy" in multiple worlds. Also, now with dotnet core you can run your ASP.NET MVC web site on Linux* so easily so why would anyone even choose Java EE / JSP etc? I just worked through getting an ASP.NET MVC web site running on a DigitalOcean droplet (Debian) and it worked so well it was amazing. .NET dev on Linux is very easy now so Java will probably lose more ground.