Why use java in 2018?

Minecraft modifications :grin:

2 Likes

Minecraft modifications

Yeah, I’m actually thinking of making a minecraft mod that scans a network and displays a different block/schematic depending what it finds.

It kind of would be like a cmdb in 3d and modelled after psdoom / dimensional doors.

2 Likes

You guys are lucky! I’m currently working with Microsoft Dynamics Nav which uses a bastardized version of Pascal in an Access like system where source and compiled objects are stored in the database with zero source control capabilities. Life is tough all over!

1 Like

I feel your pain. Try supporting mystic bbs which has its own database standard with a format that’s documented but not very clearly and the source code is in turbo pascal.

Love the menu system on it but blimmy hard to expand and near impossible to make it use ldap for user data.

JavaScript is reason.
It’s modular and mobile and the way it needs to go.
Node.js, three.js, dialogflow.js, tensorflow.js.
It takes the cloud based APIs and runs them right in the browser. Smart object recognition and training nueral networks right from the chrome installed on my phone. Not to mention what it’s doing for augmented reality right now.
Edge IOT will continue to be important moving forward. JavaScript makes the ubiquitous.

Thank you. I’m quite aware of the plusses of server side javascript and do code in that regularly along with C and Python.

But not any of those answer the question of why use java in 2018.

Modules that are interesting for java:

Internet of Things

  • jlibmodbus for professional IoT/Scada applications controlling PLU’s
  • snmp4j for server and workstation applications + monitoring/APM.
  • mqtt message broker and subscription based data transports

AI / Machine learning

  • Tensorflow we know it, you love it. Praise Alphabet for its inception.
  • jpandas Implementation of Pandas (Python Data Analysis Library) on java.

Web Services / Applications

  • Act Framework a Dead simple microframework akin to express.js, python-flask, or ruby’s sinatra/merb. capable of 945,429.13 Transactions per second vs express.js’s 42,443.34 tps and a 2.22ms latency vs node.js’s 22.30ms. Benchmark details posted on github.

Bots

  • JSoup the most simplistic crawler I’ve seen since wget. Tutorial shows how to create a spider in less than ten minutes.

  • Selenium automates browsers. That’s it! What you do with that power is entirely up to you.

  • PircBot is a Java framework for writing IRC bots quickly and easily. Its features include an event-driven architecture to handle common IRC events, flood protection, DCC resuming support, ident support, and more.

Networking

  • pcap4j the scapy for java. Great for packet crafting, sniffing, and injection.

Gaming and graphics

  • lwjgl despide modded minecraft’s performance issues standard minecraft gets rather decent performance being single threaded and using this library. It provides access to popular native APIs useful in the development of graphics (OpenGL), audio (OpenAL) and parallel computing (OpenCL) applications.

Blockchain

  • web3j is a lightweight, reactive, type safe Java and Android library for integrating with nodes on Ethereum blockchains

Databases

  • jdbc the de facto database connector, supports nearly all databases of any kind and extensible by writing drivers. theres even modules for ldap, wmi, and snmp. works great for logstash to store anything in elastic search.

  • ActiveJDBC the fast ORM for agile development. Doesn’t support as many databases / stores as jdbc but adding a new database is relatively easy. Just look at commits on their h2intergration branch on github.

Other resources

JavaLite is a cohesive collection of frameworks designed from ground up to add pleasure back to your daily life. While /r/learnjava is the better resource for learning java and /r/javahelp is a great forum for getting help on ones java code this side of Stackexchange.

Thanks for everyone that voted on the polls. I wasn’t too surprised in your answers especially the 35.7% change to use java in future projects. but did find that a surprising amount everyone still uses C/C++ and no one even voted for javascript.

The original theory going down this journey was that java would have still been the bloated dino or a worst convoluted mess after even after my first encounter with it in 1.2 and 1.6. To my stark surprise, its not. The jvm is still crap and there doesn’t seem to be away around that even with dalvik, eclipise or openjre. While the language itself is quite easy to work with and fits somewheres between node.js and python.

The shining parts that have cleaned up development with java is not eclipse or idea ide but Gradle. Take every thing away and gradle becomes the package manager for java and makes even coding in the command line with vim / emacs fun.

As for where java’s place fits in development applications its in my option it doesn’t any more. Not to say it couldn’t hold its own to most python based use cases and maybe be a lot better as for distribution an application. But that’s a small footing to stand on now a days with pypi, docker, apt/rpm, choco, and other binary life cycle management systems that have proliferated where the jar has failed.

Would I myself choose java for my next application. Not in the slightest. But I do have a deeper appreciation for the language and would support it for only three major ecosystems. Minecraft, Elastic’s ELK stack / molo.ch, and Android. Even the later of that would be rare too since python-eve would be my go to for building rest applications and that would hand off to a statically built progressive web app to android built on top of a ui system like ng-admin. If i needed a native ui on android then there’s kivy.

The biggest take away for all here is to strip the fluff and crusty trolls from kibitzing developers to truly learn what a language and its ecosystem is about and where its best applied before choosing it for your next project. If any of that it doesn’t play to ones strengths and able to be developer by not just others but your future self then do go with it. Otherwise have fun with it and appreciate the nuances your chosen language brings. Remember, when one has a hammer everything is a nail and all the bumps scream in pain loudly but when one has a tool box full of the simplest of tools and a head full of great skill then one can create amazing works of art and feats of engineering that last the test of time.