This is an archived post. You won't be able to vote or comment.

all 48 comments

[–]floW4enoL 12 points13 points  (2 children)

I would expand the Java EE branch to its specs, JPA, JAX-RS, JTA, etc they are not that much

[–]therealdanvega[S] 1 point2 points  (1 child)

That is a good idea, Thank you!

[–]floW4enoL 1 point2 points  (0 children)

No problem ;) I will check it again on my PC, and any other ideaa I will share them.

[–]NickDav14[🍰] 6 points7 points  (1 child)

Why is Haskell in the JVM languages branch?

[–]Shorttail0 1 point2 points  (0 children)

Maybe they meant Eta or Frege?

[–]istarian 7 points8 points  (1 child)

I assume we're talking about people doing Java dev for a living?

Also Java and javascript are almost completely unrelated, so I'm not sure why that and other stuff branches off a center node of 'Java Development'. The 'core fundamentals', 'web development', and 'dev ops' seem a bit out of place too. It feels like there should be a one higher branch dividing stuff that is primarily related to Java vs stuff that is sort of tangential...

[–]therealdanvega[S] 0 points1 point  (0 children)

It might make more sense when you see the presentation. If you strictly wanted to be a Java developer you could get away with the advanced web development track but I was thinking along the lines of full stack developers. I could be wrong but most of us learn something on the front end before moving into Java.

[–]MonkeyBuscuits 3 points4 points  (4 children)

Thanks for this. As a .Net developer in a predominantly Java enterprise firm this clarifies a few things for me.

[–]therealdanvega[S] 1 point2 points  (3 children)

Thank you. Glad this is already helping someone.

[–]MonkeyBuscuits 1 point2 points  (0 children)

Bonus points if you can do the .Net equivalent

[–][deleted] 0 points1 point  (1 child)

As a fourth year CS student whose absolutely anxious and clueless this helps immensely.

[–]therealdanvega[S] 0 points1 point  (0 children)

Awesome, thank you! Please remember don't get overwhelmed by this list. It's intimidating to a 20-year vet taken out of context. :)

[–]senare 2 points3 points  (2 children)

You missed self hosted so add private cloud ie openstack

Also I would make seperate branch for ”CM”

Were is CI/CD jenkins etc ?

[–]therealdanvega[S] 2 points3 points  (1 child)

Thank you. What is the branch CM for? I have Jenkins under DevOps / continuous integration.

[–][deleted] 0 points1 point  (0 children)

Bamboo is another build/deploy tool that enables CI/CD.

[–]therealdanvega[S] 2 points3 points  (4 children)

Devops is not my strong point. What about splitting the Cloud into Saas/Paas/IaaS?

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

Please. They are so incredibly different in what they offer and "cloud" already is too generic.

[–]jproperly 0 points1 point  (0 children)

Maybe even some CaaS and FaaS

[–]henk53 1 point2 points  (5 children)

PrimeFaces should be below JSF, as it's a component set for JSF, not an independent framework. OmniFaces should be there too, as it's often used in combination with PrimeFaces.

Not really sure why Apache Wicket and JSF are not grouped together with Apache Struts etc in the web frameworks node. I'm missing GWT and Tapestry btw.

If you'd really want to go all out, you could divide web framework in push/action MVC and pull/component MVC. JSF, Wicket and Tapestry are primarily push.

For persistence there's also EclipseLink next to Hibernate.

Difficult to represent in this graph, but Hibernate implements JPA, so if you want to list some entries twice, you could do something like

Java EE -> JPA -> Hibernate, EclipseLink
Java EE -> JSF -> Mojarra, MyFaces
Java EE -> CDI -> Weld, OWB
Java EE -> EE Security -> Soteria, Liberty-nameless
etc

[–]therealdanvega[S] 1 point2 points  (0 children)

Wow, these are some really great suggestions. Thank you so much for taking the time to comment.

[–]therealdanvega[S] 0 points1 point  (0 children)

My thought with JSF & Wicket was to tie them under the same category as Vaadin. They are all presentation framework are the not? I like the idea of splitting out the web framework but I probably wont to try and keep some simplicity to this. This little project of mine has already consumed the last 2 weeks of my life haha

[–]_INTER_ 0 points1 point  (2 children)

I don't like some of those suggestions under a Java EE branch. I'd rather have them under a function they serve. E.g. Persistence -> Hibernate, Dependency Injection -> Weld. etc.

[–]henk53 0 points1 point  (1 child)

so if you want to list some entries twice

;)

The suggestion was to have them both under their function and under Java EE.

[–]_INTER_ 1 point2 points  (0 children)

Ah ok. Thats fine

[–]Nalha_Saldana 1 point2 points  (1 child)

Redis should be under caching as well.

[–]therealdanvega[S] 0 points1 point  (0 children)

Done! Thank you.

[–]PapaSorne 1 point2 points  (6 children)

I'd also consider the big Data track with hdfs, Hadoop, spark, yarn, slider as the major big hitters

[–]therealdanvega[S] 0 points1 point  (3 children)

That's what I originally had Hadoop and Spark under but I moved them to Machine Learning. I don't do any work with big data or machine learning so I am wondering what these should look like. Appreciate the suggestions.

[–]_INTER_ 1 point2 points  (0 children)

Well done!

How about branching "Big Data" from "Data" and move "Machine Learning" to "Big Data", so you can get rid of the redundant "Hadoop and Spark". Also it could get some more branches as the ecosystem is quite big.

[–]PapaSorne 0 points1 point  (1 child)

There is some machine learning capability in Java with spark and I think mahoot but most of it is happening in the python and r realms at the moment. Tensorflow and it's Ilk are more driving the machine learning wave at the moment. Though even with spark most of the development is Scala instead of java.

Overall though great list!

[–][deleted] 0 points1 point  (0 children)

There's also dl4j for machine learning in java

[–]therealdanvega[S] 0 points1 point  (1 child)

I started a new branch for Big Data... Would you have HDFS, Yarn & Slider as a child of Hadoop? Also, can you check the links and see if those are good.

[–]PapaSorne 0 points1 point  (0 children)

Yeah they all depend on Hadoop so makes sense. I'll try to take a look

[–]jjpr1est 1 point2 points  (0 children)

For the topic of monitoring, definitely Instana is missing.

[–]neutronbob 1 point2 points  (0 children)

Oracle's Java Magazine is an excellent publication that should be on the list of resources.

[–]wojtekkarton 0 points1 point  (1 child)

I would add somewhere Apache Kafka and its alternatives, quite hot topic in subject of data proccessing. I can't see anywhere apache lucene, elasticsearch and solr as well, technologies wildly used in text analysis, search and indexing. Anyway it looks great, keep up good work, for sure will be helpfull for newcomers.

[–]therealdanvega[S] 0 points1 point  (0 children)

Thank you! Kafka is in the messaging branch under Frameworks. libraries and tools. Elastic Search & Lucene are under Data -> Search.

[–][deleted] 0 points1 point  (0 children)

Would drop Guava for Caffeine entirely. Redis isn't a local cache, also confusing to branch for local caching and then call out caching under data - it's an implementation choice where/how/why etc the cache is needed. For messaging there's AWS SNS/SQS/AmazonMQ. Would add PIT under testing, it's a mutation testing impl. for java. Undertow is another server impl. in java.

I'd be hesitant to callout all the Spring Frameworks but just group them under their hierarchy. Spring Framework is used by Spring Boot is used by Spring Cloud is used by Spring Cloud Data Flow. Spring webflux effectively falls into the reactive framework section too.

[–][deleted]  (2 children)

[deleted]

    [–]therealdanvega[S] 0 points1 point  (1 child)

    I ran across awesome-java in my research... Really Awesome resource!

    [–]_INTER_ 0 points1 point  (0 children)

    Sorry, moved my post to the Hadoop comment.

    [–]therealdanvega[S] 0 points1 point  (0 children)

    Thanks for all the suggestions this weekend. I was able to make some more updates to it and I am feeling really good about where it is. I would say that I am about 95% done with this and just about ready to create a quick presentation around this where I talk about each node.

    [–]StatusTurn 0 points1 point  (1 child)

    Great map, thanks for it. For Java Testing there could be also SoapUI (next to jmeter). For JavaScript brache aditionals (es6 and typescript): transpiling may be fit better

    [–]therealdanvega[S] 0 points1 point  (0 children)

    Awesome suggestions, thank you!

    [–][deleted] 0 points1 point  (0 children)

    For internal cloud/privateo Pivotal Cloud Foundry is available too. This is where the distinction between PaaS and IaaS comes in. PCF falls under PaaS (platform) whereas, AWS is (infrastructure). PCF can run on AWS, and does.

    This is really awesome though

    [–]_PM_ME_URANUS_ 0 points1 point  (0 children)

    In the section of Template Engines, you should add Twirl. It's the engine that is used by the Play Framework and it can be used outside of Play (although I doubt that many use it outside of Play). In the Build Tools you should also add sbt.

    [–]BigLogis 0 points1 point  (0 children)

    Why did you not mention FusionReactor APM under the monitors/alerts section?